/* 配置用户页面模块vuex */

import {
  setStorageToken,
  getStorageToken,
  removeStorageToken
} from '@/utils/storage'
import { getUserInfo } from '@/api/user'
import { Toast } from 'vant'
export default {
  namespaced: true,
  state: {
    // 调用存储模块的获取函数
    token: getStorageToken(),
    userInfo: {}
  },
  mutations: {
    // ⭐存储token state和本地都存储
    setToken(state, payload) {
      state.token = payload
      // 调用存储模块的存储函数
      setStorageToken(payload)
    },
    removeToken(state) {
      // 移除store的token
      state.token = {}
      // 移除本地存储
      removeStorageToken()
    },
    // ⭐存储个人信息到store
    setUserInfo(state, payload) {
      state.userInfo = payload
    }
  },
  actions: {
    // ⭐ajax请求 获取用户信息异步操作
    async Actions_getUserInfo(context) {
      try {
        const res = await getUserInfo()
        context.commit('setUserInfo', res.data)
      } catch {
        // 获取用户信息失败
        // 提示下
        Toast('获取用户信息失败') // vant内置方法
      }
    }
  }
}
